
close all

load dades.mat

taxa = 100;
idxCerca = 22;

[u,s,v] = svd(matriu_cares);
up = u(:,1:taxa);
sp = s(1:taxa,1:taxa);
vp = v(:,1:taxa);

% Projecte les cares al espai de p demencions
caresProj = up'*matriu_cares;
caresTestProj = up'*matriu_test;


caraCerca = caresTestProj(:,idxCerca);

% http://www.mathworks.es/es/help/bioinfo/ref/knnclassify.html
resultat = knnclassify(caraCerca', caresProj', ident_cares', 3);

disp(['Diu que es: ' num2str(resultat) ' pero es: ' num2str(ident_test(idxCerca))]);

figure
caraCerca = matriu_test(:,idxCerca);
im=reshape(caraCerca,75,65);
imshow(mat2gray(im));

figure
idxImgPersona = find(ident_cares == resultat);
for i = 1:length(idxImgPersona)
    subplot(2,5,i);
    caraResultat = matriu_cares(:,idxImgPersona(i));
    im=reshape(caraResultat,75,65);
    imshow(mat2gray(im));
end
